home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
tools
/
czesc_3
/
psm
/
readme.txt
< prev
next >
Wrap
Text File
|
1993-07-28
|
9KB
|
202 lines
PSM - Public Screen Manager v1.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Copyright (C)1993 by Dianne Hackborn.
=========================================================================
This program is shareware. If you like it and find it useful, please
consider sending a donation of $5 or whatever you think it is worth.
My address is at the end of this file.
Taking a clue from Microsoft and their MSDOG 6.0, if you become a
register developer of my gadoutline.library, you will also become
registered for this program at NO EXTRA CHARGE! Wow. :)
This program is freely distributable as long as all of its files are
included, with no modifications to them. It is provided as-is, and has
warranties of any kind.
=========================================================================
INTRODUCTION
PSM is Yet Another Public Screen Program. It was primarily written as
a demonstration of my gadoutline.library, and is thus currently very
GUIcentric - it does no command line parsing for CLI users or even look
at its Workbench tooltypes. On the other hand, it does have a very
sophisticated multi-window user interface and allow almost complete
control over the creation of screens.
This program requires gadoutline.library to run, which is included in
the archive. You may either place the library in your LIBS: directory
or in the same directory as PSM; if it can't find it in LIBS: it will
attempt to load it from its program directory. The included program
"AboutGadOutline" displays information about the gadoutline.library
file currently installed. Complete documentation and programming
information for gadoutline.library is available in a separate
distribution.
GETTING STARTED
There are three different windows used by PSM: The MAIN WINDOW, the
EXAMINE WINDOW and the NEWSCREEN WINDOW. PSM allows multiple windows
- limited only by memory - to be open and active at the same time. You
could, for example, open a newscreen window and, while filling it in,
get information from another screen by opening an examine window or even
another newscreen window; the first window will not be disturbed in any
way. The only exception to this independence is the main window, as
discussed below.
THE MAIN WINDOW
PSM's main window is the first thing you should see after running the
program, and is the main control panel for everything else. You can
only have one main window open for a single invocation of the program,
and closing this window will cause all other windows currently opened
by the application to be closed and the program to exit. In addition,
all other windows are opened from the main window, and all open windows
[with the exception noted later] follow the main window to whatever
screen it is on.
There are two primary components of the window - the top 3/4 of the
window allows the viewing and selection of all available public
screens, while the bottom 2 lines contain other miscellaneous
functions. At the very top of the window is a list of public screens;
each entry corresponds to one public screen, and contains three
distinct fields:
F## Name...
| | |
| | +------------ Public screen's name
| +----------Number of locks on the screen
+-----Screen state. P=Private, *=A PSM Screen, blank is 'normal.'
Directly below this list is a box labeled "Owner", which identifies
any task which will be notified when the last window on the screen
closes; if there is no task, it will display "None."
The screen list is used to selecte which screen an operation is to be
performed on. The next three lines contain buttons for the following
operations:
Close - Attempts to close the selected screen. This gadget will be
disabled if there are any locks on the screen.
Jump to - Move to the selected screen; the main window and all other
opened windows will jump to that screen.
Examine - Open examine window for selected screen.
Dup Scrn - Open NewScreen window, with defaults from selected screen.
Mod Scrn - Open NewScreen window in special modify mode on the selected
screen. Disabled if the screen has any locks.
Default - Select screen as the default public screen. To the right it
displays the current default screen.
Finally, the last two lines contain four miscellaneous control gadgets:
Shanghai - Select shanghai mode; when on, all windows trying to open on
the workbench screen will be forced on to the default public
screen.
AutoPop - Select auto pop mode; when on, a public screen will
automatically move to the front when a window opens on it.
New Scrn - Bring up NewScreen window based on default public screen.
Quit - Exit program. Same as selecting the window's close gadget.
THE EXAMINE WINDOW
This window is used to look at basic information about a screen; it is
opened by selecting "Examine" from the main window. Note that the
information in the window is only a snapshot created at the time the
window is opened; any later changes to the screen will not be reflected
in the window.
THE NEWSCREEN WINDOW
This window is used to open a new public screen. At the top are two
string gadgets, used to specify the public name the screen will be
refered to by, and the title to place in the screen's title bar. Note
that the public screen name must be unique to this screen and is case
sensitive.
Below these are two large boxes; the left is a standard list of display
modes which the screen can be opened in, and the box to the right shows
general information about the currently selected display mode.
Below the display mode is a group of gadgets used to specify the
screen's overscan information. At the top is a cycle gadget of
standard overscan regions. If you select "Custom" for the region, the
four gadgets below it will be activated, allowing you to specify the
top-left and bottom-right corners of the display region.
To the right of the overscan gadgets are the screen size gadgets. You
may either choose to use the default dimension or a custom dimension
for both the screen's width and height. Using a custom dimension, you
may create a screen either larger or smaller than the selected overscan
region. Below these gadgets is a single checkbox used to turn
autoscroll on and off. When opening a screen larger than the overscan
size, turning this on will allow the screen to automatically scroll
when you move the pointer to its edge.
At the bottom is a group of gadgets used to select the screen's font,
and the "Open" button which will actually create the screen.
Finally, at the far right is two groups of gadgets used to control the
screen's depth, palette and drawing pens.
THE MODIFY WINDOW
There is a special mode of the NewScreen window called "Modify." This
mode is enabled whenever the Modify button is selected from the main
window, or after a screen is opened with NewScreen and the window pops
up on the newly created screen. This window has some special
characteristics:
- It is attached to the screen it is on, and will not move from it
when you select "Jump to" from the main window.
- It changes the screen's palette as the window's palette gadgets
are played with by the user.
- The "Open" gadget is replaced with a "Modify" gadget, which
closes the screen and then reopens it with any changes that have
been made through the window. This makes it very easy to try out
different overscan, screen mode, font, size, depth and draw pen
settings until you find something that you like.
Be aware that this window's attachment to its screen is _only_ through
its "Public Name" gadget at the top; when changing the palette or
selecting the modify gadget, this is the screen which is taken to be
the one being modified.
SCREEN TRACKING
When opening a screen, a program needs to provide Intuition with some
information that remains valid throughout the screen's lifetime.
Because of this, PSM employs a method of tracking screens it has
opened, which allows it to free these resources when closing the
screen. Screens that are currently being tracked by it are marked with
the '*' flag in the main window; if one of these screens is closed by
anything besides PSM, you will loose the 100-200 bytes of memory being
tracked until you reboot your computer.
The method that PSM uses to track these screens allows it to track them
between separate invocations of the program or even among multiple
invocations of the program running at the same time.
THE SOURCE CODE
This archive includes all source code needed to create the program. If
you own SAS/C v6.0 or later, you should be able to compile it by simply
double clicking on the build icon in the source directory. Note that
you will need the gadoutline.library include files in the compiler's
search path in order to get it to compile.
HOW TO REACH ME
EMail - BIX: dhack@bix.com
SCHOOL: hackbod@xanth.cs.orst.edu
SnailMail - Dianne Hackborn
2895 Los Altos Drive
Meridian, ID 83642
FINALLY
Have fun, and I hope you find the program useful. All comments,
suggestions and bug reports are more than welcome.